package org.ofbiz.wvtools.wxutil;

import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.entity.Delegator;
import org.ofbiz.entity.DelegatorFactory;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.entity.util.EntityUtil;

public class GzhConfig {
    // =======【基本信息设置】=====================================
    // 微信公众号身份的唯一标识。审核通过后，在微信发送的邮件中查看
    public String APPID = "xxxx";
    // 商户号ID，身份标识
    public String MCHID = "xxxx";
    // 商户支付密钥Key。审核通过后，在微信发送的邮件中查看
    public String KEY = "xxxx";
    // JSAPI接口中获取openid，审核后在公众平台开启开发模式后可查看
    public String APPSECRET = "xxxx";
    // 异步回调地址 手机端
    public String NOTIFY_URL = "xxx";
    public String NOTIFY_URL2 = "xxx";

    // web回调地址
    public String WEB_NOTIFY_URL = "xxx";

    // =======【curl超时设置】===================================
    // 本例程通过curl使用HTTP POST方法，此处可修改其超时时间，默认为30秒
    public static int CURL_TIMEOUT = 30;

    public static final String ECPT_HOME = System.getProperty("ecpt.home");

    public GzhConfig(String productStoreId) {
	Delegator delegator = DelegatorFactory.getDelegator("default");
	try {
	    if (UtilValidate.isNotEmpty(productStoreId)) {
		GenericValue payment = EntityUtil.getFirst(delegator.findByAnd("PaymentGateway",
			UtilMisc.toMap("typeId", "WX_PAY", "productStoreId", productStoreId), null, false));

		this.APPID = payment.getString("appId");
		// 商户号ID，身份标识
		this.MCHID = payment.getString("partnerId");
		// 商户支付密钥Key。审核通过后，在微信发送的邮件中查看
		this.KEY = payment.getString("privateKey");
		// JSAPI接口中获取openid，审核后在公众平台开启开发模式后可查看
		this.APPSECRET = payment.getString("paymentMerKey");
		// 异步回调地址 手机端
		this.NOTIFY_URL = payment.getString("phoneNotifyUrl");
		// 异步回调地址 手机端
		this.NOTIFY_URL2 = payment.getString("phoneNotifyUrl2");
		// web回调地址
		this.WEB_NOTIFY_URL = payment.getString("paymentNotifyUrl");
	    } else {
		GenericValue payment = delegator.findOne("PaymentGateway", UtilMisc.toMap("baseId", "WX_PAY"), false);

		this.APPID = payment.getString("appId");
		// 商户号ID，身份标识
		this.MCHID = payment.getString("partnerId");
		// 商户支付密钥Key。审核通过后，在微信发送的邮件中查看
		this.KEY = payment.getString("privateKey");
		// JSAPI接口中获取openid，审核后在公众平台开启开发模式后可查看
		this.APPSECRET = payment.getString("paymentMerKey");
		// 异步回调地址 手机端
		this.NOTIFY_URL = payment.getString("phoneNotifyUrl");
		// 异步回调地址 手机端
		this.NOTIFY_URL2 = payment.getString("phoneNotifyUrl2");
		// web回调地址
		this.WEB_NOTIFY_URL = payment.getString("paymentNotifyUrl");
	    }
	} catch (GenericEntityException e) {
	    Debug.log(e.getMessage());
	}
    }
}
